VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "CompositeMethodCaller"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Option Explicit

Private mCollection As Collection

Public Sub init(Optional col = Nothing)
If col Is Nothing Then
    Set mCollection = New Collection
Else
    Set mCollection = col
End If
End Sub

Public Sub add(forward As Object)
mCollection.add forward
End Sub

Public Sub forward(notify As Object)
Dim fwd As Object
For Each fwd In mCollection
    fwd.forward notify
Next
End Sub

Public Property Get elapsedTime() As Double
Dim fwd As Object
Dim value As Double
For Each fwd In mCollection
    value = value + fwd.elapsedTime
Next
elapsedTime = value
End Property


Public Property Get Count() As Integer
Count = mCollection.Count
End Property


